草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c++ - 我正在使用 std::bitset 并尝试创建两个大小为 100,000,000,000 的数组 std::bitset

我正在使用std::bitset并尝试创建两个大小为100,000,000,000的数组std::bitset。结果,程序只占了我298MB的RAM,但必须占~24GB。我有32GBRAM,现在有26GB可用。当我为x86构建代码时,它编译并可以启动,但对于x64,它显示以下内容:错误C2148:数组总大小不得超过0x7fffffff字节。如何修复它并且不减小bitset数组的大小?我尝试制作2个全局数组。另外,我在Microsoftvisualstudio->project->name_projectproperties->configurationproperties->linke

c++ - 是否可以在 Windows 中存储系统调用的输出?

例如:我想存储system("dir");的输出 最佳答案 是的,看看从CreateProcess捕获标准输出:CreatingaChildProcesswithRedirectedInputandOutput请注意,dir是DOS下的内置命令。因此,您必须执行类似以下系统命令的操作:cmd.exe/cdirc:\path\to\directory而不只是调用dir。键入cmd/?以获取有关/c参数的更多信息。 关于c++-是否可以在Windows中存储系统调用的输出?,我们在Stack

c - 在 MSVC6 中处理大于 2 GB 的文件!

WindowsMSVC6中的普通文件相关函数,如fseek、ftell等,只能处理最大2GB的文件(据我目前的理解,如有错误,请指正)。我想处理大于2GB的文件。我该怎么办?有哪些功能可用? 最佳答案 我不确定,但限制是4GB,OSAPI和使用这些API的标准库以及使用的文件系统。ftell、fseek函数使用32位整数,因此您将无法处理大于4GB的文件。您将不得不直接使用OSAPI。所以你必须小心你使用的函数,例如为了获取文件大小你必须使用ex函数GetFileSizeEx,因此您必须确保使用使用64位文件偏移量的函数。同样适用于

c++ - native CheckedListBox?

在.NET领域,有非常有用的System.Windows.Forms.CheckedListBox类。WindowsCommonControls中的等价物是什么?(如果有的话) 最佳答案 将ListView变成带有复选框的View。如果您希望它类似于ListBox,请仅使用1列。ListView_SetExtendedListViewStyle(handle,LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT); 关于c++-nativeCheckedListB

c - 使用 C 的 Windows 进程间通信 (IPC)

我有一个用C语言和MicrosoftVisualC++编写的旧程序,我需要实现某种“保持事件”,因此我能够将进程间通信接收到一个新程序中,该程序将终止并重新启动如果在过去5秒内没有收到消息,则第一个。问题是我一直在寻找任何C语言的WindowsIPC教程或示例,但我找到的几乎所有内容都是针对C++的。任何帮助或资源?编辑:正如@Adriano在回答中所建议的那样,我正在尝试使用共享内存。但是由于我无法捕获的某种异常,启动程序正在被Windows终止。调用CopyMemory时发生。代码如下:#include"stdafx.h"#include"windows.h"#include"io

c - 驱动程序如何在 Windows 中工作?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion在Linux中,我们可以从关联的驱动程序文件对象中读取/写入,并且这些函数调用将由驱动程序读取/写入函数执行。在Windows中是否相同?我们是否将文件关联到驱动程序并通过读取/写入该文件来访问驱动程序功能?(我一直在Linux下编写驱动程序,现在正试图理解“Windows方式”来完成它。)

ruby-on-rails - Make 不被识别为内部或外部命令

我正在尝试在Windows上安装Rails应用程序。当我调用这个命令时:bundleinstall我收到这个错误:如何解决? 最佳答案 您需要按照此处所述安装Ruby开发工具包:https://github.com/oneclick/rubyinstaller/wiki/Development-Kit它将安装一个mingw环境,允许ruby​​gems为Windows平台编译二进制gem。请小心遵循本节中描述的安装后步骤:https://github.com/oneclick/rubyinstaller/wiki/Developme

c++ - 与 VS2013 相比,gcc 4.7.2 中的 std::map 实现效率非常低?

有人可以帮我理解std::map容器是如何实现的吗?我有一个包含原子成员的类,我不需要调用复制构造函数,所以我使用c++11delete运算符来抑制复制构造函数的隐式生成。MyCalss(constMyClass&a)=delete;这在我的Windows构建中运行良好,但是在Linux中,我收到一条错误消息,通知我std::map类的[]运算符正在尝试调用已删除的函数。在WindowsVS2013和LinuxGCC4.7.xmap实现之间似乎存在重大差异。这促使我做了一个关于如何将对象插入map的实验。我写了这个小示例程序:#include#include#include#inclu

c - 跨所有用户制作单例应用程序

我正在尝试创建一个只允许所有Windows用户使用一个实例的应用程序。我目前正在通过打开要写入的文件并将其保持打开状态来执行此操作。这种方法安全吗?您知道使用C的替代方法吗? 最佳答案 标准解决方案是创建一个全局mutex在应用程序启动期间。第一次启动该应用程序时,这将成功。在随后的尝试中,它会失败,这就是您暂停和加载第二个实例失败的线索。您可以通过调用CreateMutexfunction在Windows中创建互斥量.如链接文档所示,在互斥量名称前加上Global\可确保它对所有终端服务器session可见,这正是您想要的。相比之

c - 如何进行 Windows 句柄继承

我有父进程和子进程,在父进程中我声明句柄将被继承,如http://msdn.microsoft.com/en-us/library/windows/desktop/ms724466%28v=vs.85%29.aspx:...SECURITY_ATTRIBUTESsa;sa.nLength=sizeof(SECURITY_ATTRIBUTES);sa.bInheritHandle=TRUE;sa.lpSecurityDescriptor=NULL;//CreateapipefortheParentprocess'sSTDOUT.if(!CreatePipe(&hChildReadPipe